package a07_二叉树;

/**
 * <p>
 * a33_把二叉搜索树转换为累加树
 * </p>
 *
 * @author flyduck
 * @since 2024/12/27
 */
public class a33_把二叉搜索树转换为累加树 {
    //累加树：本节点的新值 = 本节点的旧值 + 大于当前节点的所有节点的和
    //思路：
    //如果是数组：2,5,6
    //结果就是 13,11,6

    private TreeNode prevNode = null;

    public TreeNode convertBST(TreeNode root) {
        if (root == null) {
            return null;
        }

        convertBST(root.right);

        if(prevNode != null){
            root.val = root.val + prevNode.val;
        }
        prevNode = root;

        convertBST(root.left);
        return root;
    }
}
